/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.zapateriaLes.bl;

import java.awt.event.ActionEvent;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.its.dsw2.zapateriaLes.Enum.EstadoTerminado;
import mx.its.dsw2.zapateriaLes.dao.CategoriaDeProductoDaoLocal;
import mx.its.dsw2.zapateriaLes.dao.DetallePedidoDaoLocal;
import mx.its.dsw2.zapateriaLes.dao.ProductosDaoLocal;
import mx.its.dsw2.zapateriaLes.dao.UsuariosDaoLocal;
import mx.its.dsw2.zapateriaLes.modelo.Categoria;
import mx.its.dsw2.zapateriaLes.modelo.CategoriaDeProducto;
import mx.its.dsw2.zapateriaLes.modelo.Productos;


/**
 *
 * @author lesly
 */
@Stateless
public class ProductosBl implements ProductosBlLocal {
    @EJB
    private CategoriaDeProductoDaoLocal categoriaDeProductoDao;
    @EJB
    private ProductosDaoLocal productosDao;
  
    @EJB
    private DetallePedidoDaoLocal detallePedidoDao;
    @EJB
    private UsuariosDaoLocal usuariosDao;

    @Override
    public EstadoTerminado register(Productos product,List<Categoria>listCate) {
        if(productosDao.findByCodigo(product)){
        return EstadoTerminado.INCOMPLETE;
        }else{
            productosDao.create(product);
            for(Categoria c: listCate){
            CategoriaDeProducto cdp=new CategoriaDeProducto();
            cdp.setIdCategoria(c);
            cdp.setIdProductos(product);
            categoriaDeProductoDao.create(cdp);
                System.out.println(c.getClave());
            }
         return EstadoTerminado.COMPLETE;
        }
    }

    @Override
    public EstadoTerminado modify(Productos product,List<Categoria>listCate) {
        if(product.getId()==null || productosDao.find(product.getId())==null){
        return EstadoTerminado.INCOMPLETE;
        }else{
        productosDao.edit(product);
        return EstadoTerminado.COMPLETE;
        }
    }

    @Override
    public List<Productos> getAll() {
        return productosDao.findAll();
    }
      @Override
    public Productos findById(int idProducto) {
        return productosDao.find(idProducto);
    }

    @Override
    public EstadoTerminado delete(Productos product) {
        if(product.getId()==null || productosDao.find(product.getId())==null){
        return EstadoTerminado.INCOMPLETE;
        }else{
        productosDao.remove(product);
        return EstadoTerminado.COMPLETE;
        }
    }

    @Override
    public Productos buscarProductoPorPedido(String codigoProducto) {
        return productosDao.findCodigo(codigoProducto);
    }
    
}